package cn.com.huzo.service.trade;

import cn.com.huzo.model.entities.trade.InspectionJournalLinesMaterialEntity;
import huzofw.service.GenericManager;
import java.util.List;
import java.util.Map;
import org.springframework.transaction.annotation.Transactional;

/**
 * 化检日记账-资材明细管理服务对象接口。
 *
 * @author 范学春
 */
public interface InspectionJournalLinesMaterialManager extends GenericManager<InspectionJournalLinesMaterialEntity, String> {

    /**
     * 根据给定ID取得化检日记账资材明细信息对象。
     *
     * @param headerKey 发令单标识
     * @return 化检日记账资材信息对象
     * @throws java.lang.Exception
     */
    @Transactional
    List<InspectionJournalLinesMaterialEntity> fetchByHeaderKey(Long headerKey) throws Exception;

    /**
     * 根据给定ID+款号，取得化检日记账资材明细信息对象。
     *
     * @param matchValue 主表标识、款号列表
     * @return 化检日记账资材信息对象
     * @throws java.lang.Exception
     */
    @Transactional
    List<InspectionJournalLinesMaterialEntity> fetchByNoOfStyle(Map<String, Object> matchValue) throws Exception;

    /**
     * 根据选择的款号，取得需要增加的化检日记账资材明细信息对象。
     *
     * @param matchValue 主表标识、款号列表
     * @return 化检日记账资材信息对象
     * @throws java.lang.Exception
     */
    @Transactional
    List<InspectionJournalLinesMaterialEntity> fetchMaterialByNoOfStyle(Map<String, Object> matchValue) throws Exception;

    /**
     * 根据选择的材料增加明细。
     *
     * @param dataList
     * @return 化检日记账的资材明细
     * @throws java.lang.Exception
     */
    @Transactional
    Integer insertSelectedData(List<InspectionJournalLinesMaterialEntity> dataList) throws Exception;

    /**
     * 更新化检日记账资材明细数据
     *
     * @param dataList 要更新的数据
     * @return
     * @throws Exception
     */
    @Transactional
    Integer update(List<InspectionJournalLinesMaterialEntity> dataList) throws Exception;

    /**
     * 批量删除明细。
     *
     * @param dataList 要删除的数据
     * @return 化检日记账的资材明细
     * @throws java.lang.Exception
     */
    @Transactional
    Integer batchDeleteLines(List<InspectionJournalLinesMaterialEntity> dataList) throws Exception;
}
